/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package docmanager.engine;


import bf.OperationDispatcher;
import bf.operation.Operation;
import docmanager.operation.documentos.OpAgregarDocumento1;
import docmanager.operation.documentos.OpAgregarDocumento2;
import docmanager.operation.documentos.OpConsultarDocumento1;
import docmanager.operation.documentos.OpConsultarDocumento2;
import docmanager.operation.documentos.OpConsultarDocumento3;
import docmanager.operation.documentos.OpModificarDocumento1;
import docmanager.operation.documentos.OpEliminarDocumentos1;
import docmanager.operation.documentos.OpModificarDocumento2;
import docmanager.operation.ejemplos.OpSubirArchivo1;
import docmanager.operation.ejemplos.OpSubirArchivo2;
import docmanager.operation.navegabilidad.OpLogout;
import docmanager.operation.navegabilidad.OpMenuPrincipal;
import docmanager.operation.novedades.OpAgregarNovedad1;
import docmanager.operation.novedades.OpAgregarNovedad2;
import docmanager.operation.novedades.OpConsultarNovedades;
import docmanager.operation.roles.OpListarRoles;
import docmanager.operation.roles.OpModificarRol1;
import docmanager.operation.roles.OpModificarRol2;
import docmanager.operation.sectores.OpAgregarSector1;
import docmanager.operation.sectores.OpAgregarSector2;
import docmanager.operation.sectores.OpEliminarSectores;
import docmanager.operation.sectores.OpListarSectores;
import docmanager.operation.sectores.OpModificarSector1;
import docmanager.operation.sectores.OpModificarSector2;
import docmanager.operation.usuarios.OpAgregarUsuario1;
import docmanager.operation.usuarios.OpAgregarUsuario2;
import docmanager.operation.usuarios.OpEliminarUsuarios;
import docmanager.operation.usuarios.OpListarUsuarios;
import docmanager.operation.usuarios.OpModificarUsuario1;
import docmanager.operation.usuarios.OpModificarUsuario2;


/**
 *
 * @author Juan Lucas
 */
public class DMOperationDispatcher extends OperationDispatcher
{
    
    @Override
    public Operation obtenerOperacion(String operacion)
    {
        
        if ("ListarUsuarios".equals(operacion))
            return new OpListarUsuarios();
        else if("AgregarUsuario1".equals(operacion))
            return new OpAgregarUsuario1();
        else if("AgregarUsuario2".equals(operacion))
            return new OpAgregarUsuario2();
        else if("ModificarUsuario1".equals(operacion))
            return new OpModificarUsuario1();
        else if("ModificarUsuario2".equals(operacion))
            return new OpModificarUsuario2();
        else if("EliminarUsuarios".equals(operacion))
            return new OpEliminarUsuarios();
        else if ("ListarSectores".equals(operacion))
            return new OpListarSectores();
        else if("AgregarSector1".equals(operacion))
            return new OpAgregarSector1();
        else if("AgregarSector2".equals(operacion))
            return new OpAgregarSector2();
        else if("ModificarSector1".equals(operacion))
            return new OpModificarSector1();
        else if("ModificarSector2".equals(operacion))
            return new OpModificarSector2();
        else if("EliminarSectores".equals(operacion))
            return new OpEliminarSectores();
        else if("SubirArchivo1".equals(operacion))
            return new OpSubirArchivo1();
        else if("SubirArchivo2".equals(operacion))
            return new OpSubirArchivo2();
        else if("AgregarNovedad1".equals(operacion))
            return new OpAgregarNovedad1();
        else if("AgregarNovedad2".equals(operacion))
            return new OpAgregarNovedad2();
        else if("ConsultarNovedades".equals(operacion))
            return new OpConsultarNovedades();
        else if("ListarRoles".equals(operacion))
            return new OpListarRoles();
        else if("ModificarRol1".equals(operacion))
            return new OpModificarRol1();
        else if("ModificarRol2".equals(operacion))
            return new OpModificarRol2();
        else if("ConsultarDocumento1".equals(operacion))
            return new OpConsultarDocumento1();
        else if("ConsultarDocumento2".equals(operacion))
            return new OpConsultarDocumento2();
        else if("ConsultarDocumento3".equals(operacion))
            return new OpConsultarDocumento3();
        else if("EliminarDocumentos1".equals(operacion))
        	return new OpEliminarDocumentos1();
        else if("AgregarDocumento1".equals(operacion))
            return new OpAgregarDocumento1();
        else if("AgregarDocumento2".equals(operacion))
            return new OpAgregarDocumento2();
        else if("ModificarDocumento1".equals(operacion))
            return new OpModificarDocumento1();
        else if("ModificarDocumento2".equals(operacion))
            return new OpModificarDocumento2();
        else if("MenuPrincipal".equals(operacion))
            return new OpMenuPrincipal();
        else if("Logout".equals(operacion))
            return new OpLogout();

        
        else
            return null;

  
        /* // Por algun motivo esto no nada, tira un ClassNotFoundException
        System.out.println("DMOPerationDispatcher: cargando operacion:" + operacion + ".");
        ClassLoader classLoader = ClassLoader.getSystemClassLoader();
        //String nombreClase = "docmanager.operation.Op" + operacion;
        String nombreClase = docmanager.operation.OpListarUsuarios.class.getName();
        System.out.println("DMOPerationDispatcher: a cargar:" + nombreClase + ".");
        Operation op = null;
        try
        {
            
            Class claseOperacion = Class.forName(nombreClase, false, classLoader);
            //Class claseOperacion = classLoader.loadClass(nombreClase);
            op = (Operation) claseOperacion.newInstance();
        } catch (Exception exc)
        {
            exc.printStackTrace();
            return null;
        }
        System.out.println("DMOperationDispatcher: devolviendo operacion: "+ op.getClass().toString());
        return op;
         
         */
  }
    
    
    
}
